package com.jt.demo02;
/**用于切面编程入门*/
import com.jt.demo02.aop.SpringAOP;
import com.jt.demo02.config.SpringConfig;
import com.jt.demo02.service.UserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Spring_AOP {
    public static void main(String[] args) {
        ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
        //理论值:根据接口获取实现类对象,但是与切入点表达式匹配,为了后续扩展方便,为其创建代理对象
        UserService userService = context.getBean(UserService.class);//与切面匹配成功,那么创建代理对象,返回的对象也是代理对象,没有匹配成功则返回实现类对象
        //如果是实现类对象,则没有被扩展
        //如果是代理对象,则方法被扩展 AOP 有效的
        System.out.println(userService.getClass());
        userService.addUser();
        userService.deleteUser();
    }
}
